// 引入工具类
const { favoritesStore } = require('../../utils/store')
const { formatTime } = require('../../utils/dateUtils')

Page({
  data: {
    favorites: []
  },

  onLoad() {
    console.log('收藏页面加载')
    this.loadFavorites()
  },

  onShow() {
    console.log('收藏页面显示')
    // 每次显示时刷新收藏列表
    this.loadFavorites()
  },

  // 加载收藏列表
  async loadFavorites() {
    try {
      // 如果用户已登录，尝试从服务器获取最新收藏数据
      const { userStore } = require('../../utils/store')
      if (userStore.isLoggedIn()) {
        console.log('用户已登录，从服务器获取收藏数据')
        await favoritesStore.downloadServerFavorites()
      }
    } catch (error) {
      console.error('从服务器获取收藏数据失败:', error)
      // 失败时继续使用本地数据
    }

    const favorites = favoritesStore.getFavorites()
    console.log('获取收藏列表:', favorites)

    // 处理收藏数据，添加格式化时间
    const processedFavorites = favorites.map(item => ({
      ...item,
      formattedTime: formatTime(item.pubTime || item.publishTime || item.pub_time),
      collectTime: formatTime(item.createTime || item.favoriteTime || new Date().toISOString()),
      contentPreview: this.generateSummary(item.contentText || item.content || ''),
      image: this.extractImage(item.contentHtml || item.content_html || '')
    }))

    this.setData({
      favorites: processedFavorites
    })
  },

  // 生成摘要
  generateSummary(content) {
    if (!content) return '无内容摘要'
    // 移除HTML标签
    const text = content.replace(/<[^>]*>/g, '')
    return text.length > 60 ? text.substring(0, 60) + '...' : text
  },

  // 提取图片
  extractImage(htmlContent) {
    if (!htmlContent) return ''
    const imgMatch = htmlContent.match(/<img[^>]+src="([^"]+)"/)
    return imgMatch ? imgMatch[1] : ''
  },

  // 跳转到新闻详情
  goToDetail(event) {
    try {
      const newsId = event.currentTarget.dataset.newsId
      console.log('跳转新闻详情:', newsId)

      if (!newsId) {
        wx.showToast({
          title: '文章ID无效',
          icon: 'error'
        })
        return
      }

      // 添加到历史记录
      const newsItem = this.data.favorites.find(item =>
        (item.newsId || item.id) == newsId
      )

      if (newsItem) {
        const app = getApp()
        app.addHistory(newsItem)
      }

      wx.navigateTo({
        url: `/pages/news/detail/detail?id=${newsId}`
      })

    } catch (error) {
      console.error('跳转新闻详情失败:', error)
      wx.showToast({
        title: '跳转失败',
        icon: 'error'
      })
    }
  },

  // 移除单个收藏
  async removeFavorite(event) {
    const newsId = event.currentTarget.dataset.newsId
    const that = this

    wx.showModal({
      title: '确认删除',
      content: '确定要取消收藏这篇文章吗？',
      success: async (res) => {
        if (res.confirm) {
          try {
            await favoritesStore.removeFavorite(newsId)
            that.loadFavorites()
            wx.showToast({
              title: '已取消收藏',
              icon: 'success'
            })
          } catch (error) {
            console.error('取消收藏失败:', error)
            wx.showToast({
              title: '取消收藏失败',
              icon: 'error'
            })
          }
        }
      }
    })
  },

  // 清空所有收藏
  clearAllFavorites() {
    const that = this

    if (this.data.favorites.length === 0) {
      wx.showToast({
        title: '收藏列表为空',
        icon: 'none'
      })
      return
    }

    wx.showModal({
      title: '确认清空',
      content: '确定要清空所有收藏吗？此操作不可恢复。',
      success(res) {
        if (res.confirm) {
          favoritesStore.clearFavorites()
          that.loadFavorites()
          wx.showToast({
            title: '已清空所有收藏',
            icon: 'success'
          })
        }
      }
    })
  },

  // 跳转到搜索页面
  goToSearch() {
    wx.switchTab({
      url: '/pages/search/search'
    })
  }
})
